import Vue from 'vue'
import Vuex from 'vuex'
import cart from '@/store/modules/cart' // 购物车

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    cart
  },
  // strict: process.eno.NODE_ENV !== 'production',  // 严格模式
  state: {
    count: 1
  },
  mutations: {
    add: state => { 
      state.count++
    },
    reduce: (state, n) => { 
      state.count = state.count-n // 指定步数
    }
  },
  actions: {
    // 注册 actions ，类似vue里面的 methods
    add: context => { // 接收一个 与 store 实例具有相同方法的属性 context 对象
      context.commit('add')
    },
    reduce: (context, n) => { 
      context.commit('reduce', n)
    }
  },
  getters: {
    // 类似vue的computed
    getStateCount: state => { 
      return state.count+1
    }
  }
})

export default store
